package org.hard.model.create.builder;

/**
 * @author: 王林博
 * @date: 2023年02月10日 15:28
 */
//主管只负责按照特定顺序执行生成步骤。其在根据特定步骤或配置来生成产品时会很有帮助。
// 由于客户端可以直接控制生成器，所以严格意义上来说，主管类并不是必需的。
public class Director {

    Builder builder;

//主管可同由客户端代码传递给自身的任何生成器实例进行交互。客户端可通过这种方式改变最新组装完毕的产品的最终类型。
    void setBuilder(Builder builder){
        this.builder = builder;
    }

    void constructSportsCar(Builder builder){
        builder.reset();
        builder.setSeats("7");
    }

    void constructSUV(Builder builder){
        builder.reset();
    }
}
